package week9;

/**
 *
 * 1122. 数组的相对排序
 * https://leetcode-cn.com/problems/relative-sort-array/
 *
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：0 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：38.5 MB, 在所有 Java 提交中击败了42.84% 的用户
 * 通过测试用例：16 / 16
 * 炫耀一下:
 *
 *
 *
 */
public class Week9RelativeSortArray {

    public int[] relativeSortArray(int[] arr1, int[] arr2) {
        int max = 0;
        for(int a1 : arr1) {
            max = Math.max(max, a1);
        }

        int[] frequency = new int[max + 1];
        for(int a1 : arr1) {
            frequency[a1]++;
        }

        int[] result = new int[arr1.length];
        int index = 0;
        for(int a2 : arr2) {
            for(int size = 0; size < frequency[a2]; size++) {
                result[index++] = a2;
            }
            frequency[a2] = 0;
        }

        for(int m = 0; m <= max; m++) {
            for(int size = 0; size < frequency[m]; size++) {
                result[index++] = m;
            }
        }

        return result;

    }
}
